<?php
class QuadraDAO extends GenericDAO  {

	function __construct() {
		$this->tabela["alteracao"] = array(	"id" 	=> 168,
											"nome" 	=> strtolower(substr(get_class(), 0, -3)));
	
		$this->tabela["consulta"]  = array(	"id" 	=> 175,
											"nome" 	=> "vw_" . strtolower(substr(get_class(), 0, -3)));
	}
	
	public function consultarPK($valor) {
	    $sql = "where id = :id";
	    $params['id'] = $valor;
	    return $this->consultar($sql, $params);
	}
	
	public function consultarSQ($sq_id, $codigo) {
		$where = 'where sq_id = :sq_id and codigo like :codigo';
		$params['sq_id'] = $sq_id;
		$params['codigo'] = $codigo;
	    return $this->consultar($where, $params);
	}
	
	public function consultarSQQ($sq_codigonome, $q_codigo) {
		if (strlen($sq_codigonome) < 3) {
			$campo = "sq_codigo";
		} else {
			$campo = "sq_nome";
		}
		$where = "where $campo = :sq_codigonome and codigo = :q_codigo";
		$params['sq_codigonome'] = $sq_codigonome;
		$params['q_codigo'] = $q_codigo;
		return $this->consultar($where, $params);
	}
	
	public function getProximoPlano($id_superquadra) {
		$sql = "select coalesce(max(q.plano_codigo) + 1, concat(sq.plano_codigo, '001')) codigo from vw_superquadra sq left join vw_quadra q on sq.id = q.sq_id where sq.id = :sq_id";
		$params['sq_id'] = $id_superquadra;
		$res = $this->execQuery($sql, $params);
		return $res[0]['codigo'];
	}

	public function inserir($registro, $finalizarTransacao = true) {
		$res = null;
		if ($this->inserirRegistro($registro, $finalizarTransacao)) {
			$res = $registro;
			$res['id'] = $this->ultimoId();
		}
		return $res;
	}
	
	public function excluir($id, $finalizarTransacao = true) {
		$pk['id'] = $id;
		$sql = "select concat(plano_codigo,'%') codigo from vw_quadra where id = :id";
		$aux = $this->execQuery($sql, $pk);
		
		$params['codigo'] = $aux[0]['codigo'];
		$sql = "delete from plano where codigo like :codigo";
		
		return $this->excluirRegistro($pk, false) && $this->execSQL($sql, $params, $finalizarTransacao);
	}
	
	public function alterar($registro, $finalizarTransacao = true) {
		$pk['id'] 		= $registro['id'];
		unset($registro['id']);
		return $this->alterarRegistro($registro, $pk, $finalizarTransacao);
	}
}
?>
